敏捷交付的工程效能治理
The following article is from Thoughtworks洞见 Author Wilson Gao
在引入框架之前,很重要的一件事情是,让大家思考为什么要进行交付项目的工程效能的治理和改进。建议通过下面两个问题来作为和大家对话的开始:
在交付项目中,你区别于其他竞争对手的价值体现在什么地方?
你需要做什么来持续性地确保交付价值,甚至产生新的交付价值?
上述两个问题每个人可能会有不同的答案,但是我们希望通过这种方式来让大家不断地思考,从而形成一定的共识。这种思考是持续性的,在不同的项目中,大家遇到的交付情况和挑战通常会有一定的区别,甚至较大的不同,但是无论项目如何变化,最终的目的是要成功地交付,因此持续性地思考,复盘,改进交付能力,从而提高交付竞争力,对于最终的交付结果以及后续产生的影响力会产生积极的作用。
基于多年的在敏捷交付领域的探索和实践,我们逐步沉淀了一些方法,经验和教训,从而形成了本文中介绍的针对交付工程效能和治理的框架。
概述
虽然这个框架主要针对的是Thoughtworks的场景,但是任何以目的和价值为导向的组织都可以从中受益, 而你需要考虑的是如何把该框架和你的组织的目的和价值对齐。尤其是针对分布式敏捷交付中,对齐目的和价值会对在不同地点工作的员工能够更有效地协作具有更积极的意义。
终极目标
我们的终极目的是通过交付来产生客户侧的影响力,这个影响力可以通过两个渠道去产生:
商业价值 - 通过产生客户价值来催生影响力,这个客户价值可以是客户的OKRs(Objectives and Key Results),也可以是客户侧的商业价值
工程卓越和文化 - 通过不断追求工程卓越以及形成的工程文化来从侧面影响客户
你可以根据组织的目的和愿景,来设定真正符合组织需要的终极目标,但是商业价值应该是在以价值驱动的敏捷交付中比较通用的目标。
北极星目标*
在产生客户价值的过程中,需要用以下北极星目标来作为指引方向:
交付正确的价值
减少浪费
快速交付,快速得到反馈
高质量
*北极星目标通常指公司制定的发展目标,就是寓意要像北极星一样指引公司前进的方向。
这些目标是交付的动力,因此在交付过程中,亟待解决的问题都需要最终向这些目标看齐。如果解决的问题和这些目标不一致,那就要思考为什么需要解决这个问题,这个问题是否是你目前的工作重点,它对交付能产生的影响到底是什么?
下面这个最佳实践,度量指标和北极星目标之间的价值映射关系图,可以用来来判断是否在解决正确的问题,从而评估工程效能的治理方向是否正确。
黄金三角
基于上述的北极星目标的指引,如何更有效地进行交付并提高工程效能呢?这里需要从以下三方面考虑:
最佳实践 (Sensible Default Practices) - 这是我们在交付过程中的默认的最佳实践。这里的实践不仅仅是针对开发的,还包括针对BA, QA, UX, PM以及其他角色的最佳实践。这些实践是通过20多年的实际经验和教训积累出来的,因此这也是我们称之为default的原因。基于组织的不同情况,可能会有不同的最佳实践,更重要的是了解,应用并且不断改进这些最佳实践
度量 - 你需要运用不同的度量手段来评估交付工程效能,以发现其中存在的问题以及需要改进的地方。这个度量需要从量化和非量化的手段综合考虑,并且需要从交付效果,工程实践,能力,安全,团队士气等多方面进行考量
能力 - 这里的能力包括在交付过程中需要的多方面的能力,包括技术和非技术能力,例如TDD,结对编程, 任务分解, 安全建模, 估算及交流等
上述三要素是相互联系,而非孤立存在的。最佳实践的实践程度以及能力的不断培养可以让度量更加成熟,反之度量的结果可以帮助识别在实践方面的问题以及能力上的欠缺。最佳实践需要相应的能力作为支撑,而能力的提高也会帮助去更好地执行最佳实践。但是真正能够达到优秀甚至卓越的程度并不是一蹴而就的事情,这需要团队去持续地复盘,改进,提高, 而组织的改进则要始终以北极星目标作为指引。
理论要和实际相结合,那么如何让这个框架落地呢?下面的这个价值图的方式可以让团队理解真正“优秀“的工程效能是什么样子的,并且通过这个工具来帮助团队了解理想与现实的差距,然后通过Ray Dalio在“原则”一书中提到的解决问题的五个原则来持续地改进,提高交付工程效能。
每个交付的项目会有不同的流程,上述价值图只是作为一个示例来帮助大家理解在交付的各个环节(图中绿色方框)中,从开发的角度,需要什么样的最佳实践(图中粉色方框),与之匹配的能力(图中紫色方框),相应的度量指标(图中深蓝色方框)。虽然这个价值图示例是从开发角度设计的,但是你也可以基于此模版设计针对不同角色的价值图。对于同一角色,不同团队的价值图内容可能有所不同,但是在基本内容方面需要具有一致性,尤其是一些默认的或者标准的实践,能力和指标等,以保证组织特有的价值能够具有传承性。
按照Ray Dalio的5原则方法,在确定好目标后,接下来就需要对团队的现状进行评估,识别现实与目标的差距,然后制定相应的计划进行改进。有的团队可能起点较低,有的团队可能已经做得很好了,但是这并不代表差的团队就掉队了,好的团队就可以停滞不前,我们希望看到的是每个团队不断改进的过程和结果 (下图中的示例就是我们希望看到的改变)。差的团队可以根据优先级以及自己的节奏一步一步的走,即使走得慢也没关系,关键是要走的直,走的稳,并且在不断前行。好的团队可能离目标很近,但是不代表已经达到真正优秀的水平,即使达到了,也可以去思考下一个目标是什么,是否可以有所创新来创造新的价值,因为在追求卓越这条道路上是永无止境的,而且技术的不断革新和发展以及对未来的不可预测性也会促使我们需要不断地思考,改进和创新。
在交付过程中,你如何确保当前的交付是按照即定的目标执行的,并且确保做的事情是正确的?尽管交付价值可能是你的最终目标,而衡量交付的客户价值可以帮助了解目标是否实现,但也应该考虑其他衡量标准来评估工程效能的提高,包括但不限于:
北极星目标 - 需要找到相关度量指标来衡量质量,交付和反馈速度,成本、资源和流程上的浪费,以确保走在正确的道路上;
能力提升 - 雷达图可以用来展示需要的能力以及现有的能力,这样可以很容易地告诉你哪些能力可以满足现有的交付需求,哪些能力则需要改进;
团队士气 - 可以结合使用量化和非量化指标来评估团队的士气,这是工程效能的重要组成部分;
最佳实践的成熟度 - 需要了解团队对最佳实践的认知、执行的程度,是否能够长期地应用这些最佳实践,并且能够持续地改进;
度量指标 - 监控和分析过程和结果指标不仅可以了解工程效能和交付效率,而且也可以为后续进一步的改进提供相关指导信息;
创新理念 - 在遵循标准或最佳实践的同时,应鼓励每个团队思考他们还可以做些什么来不断地改进,例如是否有任何新的模式、能力或指标可以用来评估、试验并且采用。
我们希望通过这个框架和工具能够帮助团队在交付工程效能的提高和治理方面达成一定的目标共识,同时能够以此为基础进行落地,催生相应的能够实施的针对最佳实践、度量、能力培养、价值交付、技术等方面的工程治理流程。虽然每个治理流程侧重点不同,但是都具有一致的目标和治理原则,以此帮助大家在交付效能治理的道路上,走出一条符合组织自身特色的并具有实践性的路线出来。
- 相关阅读 -
如何在 SpringBoot 项目中控制 RocketMQ消费线程数量